home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr05 / xnot12a.zip / DIRED.C < prev    next >
C/C++ Source or Header  |  1993-05-20  |  1KB  |  70 lines

  1. #include "jam.h"
  2.  
  3. #include "def.h"
  4. #include "keyname.h"
  5.  
  6. static BUFFER * rn_(_dirgetfile, (int f, int n));
  7.  
  8. /*ARGSUSED*/
  9. dired(f, n)
  10. int f, n;
  11. {
  12.     char dirname[NFILEN];
  13.     BUFFER *bp;
  14.  
  15.     dirname[0] = '\0';
  16.     if(eread("Dired: ", dirname, NFILEN, EFNEW | EFCR) == ABORT)
  17.     return ABORT;
  18.     if((bp = dired_(dirname)) == NULL) 
  19.     return FALSE;
  20.     curbp = bp;
  21.     curbp->b_flag |= BFVIEW;
  22.     return showbuffer(bp, curwp, WFHARD | WFMODE);
  23. }
  24.  
  25. /*ARGSUSED*/
  26. d_findfile(f, n)
  27. int f, n;
  28. {
  29.   BUFFER *oldBuf = curbp;
  30.   BUFFER *bp = _dirgetfile(f, n);
  31.  
  32.   if (bp && (oldBuf->b_flag & BFREVERT))
  33.     return (reverto(f, n));
  34.  
  35.   return (bp ? TRUE : FALSE);
  36. }
  37.  
  38. d_viewfile(f, n)
  39. int f, n;
  40. {
  41.   BUFFER *bp = _dirgetfile(f, n);
  42.  
  43.   if (bp)
  44.     bp->b_flag |= BFVIEW;
  45.   return (bp ? TRUE : FALSE);  
  46. }
  47.  
  48. static BUFFER *_dirgetfile(f, n)
  49. int f, n;
  50. {
  51.     char fname[NFILEN];
  52.     register BUFFER *bp;
  53.     register int s;
  54.     EWINDOW *wp;
  55.  
  56.     if((s = d_makename(curwp->w_dotp, fname)) == ABORT) 
  57.     return (BUFFER *)0;
  58.     if ((bp = (s ? dired_(fname) : findbuffer(fname))) == NULL) 
  59.     return (BUFFER *)0;
  60.  
  61.     if (!(wp = popbuf(bp)))
  62.     return (BUFFER *)0;
  63.     curbp = bp;
  64.     curwp = wp;
  65.  
  66.     if (bp->b_fname[0] == 0) 
  67.        s = readin(fname);
  68.     return (bp);
  69. }
  70.